package com.wink_172.library

import android.app.Application
import android.content.Context
import android.text.TextUtils
import android.util.Log
import com.hjq.language.MultiLanguages
import com.tencent.cos.xml.CosXmlService
import com.tencent.mmkv.MMKV
import com.wink_172.library.model.Constants
import com.wink_172.library.utils.CommonUtils
import com.wink_172.library.utils.TencentCosUtils
import org.xutils.x
import java.util.*

/**
 * 小tip
 * 如果log太大控制台打印不完全
 * ->可以保存日志到本地
 * ->可以在开发者选项中把缓冲日志内存加大到1M
 *
 *preinitUMeng
 * */
open class LibApplication : Application() {

    override fun attachBaseContext(newBase: Context) {
        // 国际化适配（绑定语种）
        super.attachBaseContext(MultiLanguages.attach(newBase))
    }

    override fun onCreate() {
        super.onCreate()
        initMMKV() //first
        initXutils()
        MultiLanguages()
//        TencentCosUtils.initTectentCos()

    }
    private  val TAG = "LibApplication"
    /**
     * 初始化MMKV
     */
    private fun initMMKV() {
        val rootDir = MMKV.initialize(this)
    }

    /**
     * 初始化xutils
     * first
     */
    private fun initXutils() {
        x.Ext.init(this)

        // 全局默认信任所有https域名 或 仅添加信任的https域名
//         使用RequestParams#setHostnameVerifier(...)方法可设置单次请 求的域名校验
//        x.Ext.setDefaultHostnameVerifier { hostname, session ->
//            true
////            if (TextUtils.isEmpty(hostname)) {
////                false
////            } else !Arrays.asList(*VERIFY_HOST_NAME_ARRAY).contains(hostname)
//        }

//        CommonUtils.addDefaultHostnameVerifier(VERIFY_HOST_NAME_ARRAY)//动态添加验证
//        CommonUtils.addDefaultHostnameVerifier(VERIFY_HOST_NAME_ARRAY)//动态添加验证

    }

    /**
     * 初始化多语种框架（自动适配第三方库中 Activity 语种）
     */
    fun MultiLanguages() {
        MultiLanguages.init(this)
    }

    companion object {
        private val VERIFY_HOST_NAME_ARRAY = arrayOf(
            Constants.BASE_URL
        )

        @JvmStatic open  var cosService: CosXmlService? =null
    }
}